Docker EXPOSE 端口

您所在的位置:网站首页 808端口 作用 Docker EXPOSE 端口

Docker EXPOSE 端口

2023-08-01 04:39| 来源: 网络整理| 查看: 265

先简单介绍下,Docker是一个工具,可以帮助我们快速构建一个跨平台的应用服务,可以理解为简易版的虚拟机。那如果我们想让docker帮我们构建应用服务,就得告诉它怎么做,那这样的一个操作文档就是Dockerfile, 它大概长这样:

FROM microsoft/dotnet:2.1.403-sdk-bionic AS build-env WORKDIR /app # copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # build runtime image FROM microsoft/dotnet:2.1.5-aspnetcore-runtime WORKDIR /app COPY --from=build-env /app/out . EXPOSE 80 ENTRYPOINT ["dotnet", "docker101.dll"]

上面虽然有很多命令,但是大家可以先不用看,今天只是一起了解下 EXPOSE命令。

关于EXPOSE命令,我之前学习的时候遇到下面几个问题:

这样声明暴露端口就会把对应端口的服务向外公开吗? 如果我Docker中的服务端口在5000,但我在Dockerfile中声明暴露80,我的服务还能从外部访问吗?

最后经过查阅文档也得到了解答,顺便跟大家一起分享下:

首先 EXPOSE命令只是起到一个声明的作用。告诉查看Dockerfile的人,这个容器想暴露80这个端口,如果你有之后一些关于容器端口的操作可以使用80端口。

在宿主机上运行Docker时并不会因为这个声明应用就会开启这个端口的服务,如果你想在宿主机上访问对应80端口的服务是,需要使用命令将端口进行映射。

docker run -p 宿主机端口:容器端口 image 第二个问题,其实已经很明显了,上面说到Expose只是起到了声明作用,不是说我写了80端口,这个容器就只能使用80了,如果你想5000端口也可以向外暴露,也可以使用命令: docker run -p 宿主机端口:5000 image


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3